{
 "metadata": {
  "name": "",
  "signature": "sha256:c4cdc1034d87055332a17d6575ffab7014ba90e77e28fd3fcdc26e85ed16ed0c"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "import pandas as pd\n",
      "import cv2\n",
      "import torch.utils.data as data\n",
      "import torch\n",
      "import os\n",
      "import matplotlib.pyplot as plt\n",
      "%matplotlib inline"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 93
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "class FaceDataset(data.Dataset):\n",
      "    def __init__(self, path, flag):\n",
      "        super(FaceDataset, self).__init__()\n",
      "        self.path = path\n",
      "        self.flag = flag\n",
      "        self.root = os.path.join(self.path, 'train')\n",
      "        file_name = os.path.join(self.path, self.flag+'.csv')\n",
      "        self.label = pd.read_csv(file_name, header=None)\n",
      "        self.label = np.array(self.label)\n",
      "    def __getitem__(self, index):\n",
      "        img_index = index\n",
      "        if self.flag == 'val':\n",
      "            img_index += 6999\n",
      "        img_path = os.path.join(self.root, str(img_index) + '.jpg')\n",
      "        img = cv2.imread(img_path)\n",
      "        img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
      "        img_norm = img_gray.reshape((1, 96, 96)) / 255.0\n",
      "        img_tensor = torch.from_numpy(img_norm)\n",
      "        img_tensor = img_tensor.type('torch.FloatTensor')\n",
      "        label = self.label[index]\n",
      "        return img_tensor, label\n",
      "    def __len__(self):\n",
      "        return self.label.shape[0]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 94
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "path = 'data'\n",
      "data = FaceDataset(path, 'train')"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 95
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "img, label = data.__getitem__(7)\n",
      "\n",
      "#cv2.imshow('1', img)\n",
      "#cv2.waitKey(0)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 96
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def show_image(X, Y):\n",
      "    img = np.zeros((96,96))\n",
      "    for i in range(0, Y.shape[0], 2):\n",
      "        if 0<Y[i+1]<96 and 0<Y[i]<96:\n",
      "            img[int(Y[i+1]), int(Y[i])] = 255\n",
      "    plt.imshow(img[:,:])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 97
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "show_image(img, label)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAP4AAAD8CAYAAABXXhlaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAC+NJREFUeJzt3W+oX4V9x/H3Z4mJ085qupHFRGaG\n0iKFaglVcYxhWnRdmT6QYiklDCFPutV2hU63JxsMNqHU+mAUgq6EIbVd6qa40mBT+2BPMmMNmyZa\nM101Jv4Z1TqEWcO+e3BP4DYmub/k/v4l3/cLLvee8zs358vxvu85v5+H301VIamXX5n1AJKmz/Cl\nhgxfasjwpYYMX2rI8KWGDF9qaFnhJ7kxybNJDiS5Y1xDSZqsnO4NPElWAD8BPgEcBB4HPlNV+8Y3\nnqRJWLmM7/0YcKCqngdI8gBwE3DC8FdldZ3L+cvYpaST+V/e5hf1TpbabjnhrwdeWrR8ELj62I2S\nbAW2ApzLeVydzcvYpaST2V27Rtpu4i/uVdW2qtpUVZvOYfWkdydpBMsJ/2XgkkXLG4Z1kubccsJ/\nHLg8ycYkq4BbgYfHM5akSTrt5/hVdSTJHwM7gRXA31fV02ObTNLELOfFParqe8D3xjSLpCnxzj2p\nIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkh\nw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHD\nlxoyfKkhw5caWjL8JJckeSzJviRPJ7l9WL8myaNJnhs+XzT5cSWNwyhn/CPAl6vqCuAa4PNJrgDu\nAHZV1eXArmFZ0hlgyfCr6nBV/Xj4+n+A/cB64CZg+7DZduDmSQ0pabxO6Tl+kkuBq4DdwNqqOjw8\n9AqwdqyTSZqYkcNP8j7gu8AXq+qtxY9VVQF1gu/bmmRPkj3v8s6yhpU0HiOFn+QcFqK/v6oeHFa/\nmmTd8Pg64LXjfW9VbauqTVW16RxWj2NmScs0yqv6Ae4D9lfV1xY99DCwZfh6C/DQ+MeTNAkrR9jm\nOuBzwH8k2Tus+3Pgb4HvJLkN+Cnw6cmMKGnclgy/qv4VyAke3jzecSRNg3fuSQ0ZvtSQ4UsNGb7U\nkOFLDRm+1JDhSw0Z/llm56G97Dy0d+kN1ZrhSw2NcsuuziA3XHzlrEc4rqNXIfM6Xzee8aWGDF9q\nyEt9TYWX+PPFM77UkOFLDRm+1JDhSw0ZvtTQWRe+t6xqHs3bz+VZF76kpRm+1NBZdwOPN4poHs3b\nz6VnfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caGjn8JCuS\nPJnkkWF5Y5LdSQ4k+XaSVZMbU9I4ncoZ/3Zg/6Llu4C7q+oy4A3gtnEOdjabt7dhOlt4XEc3UvhJ\nNgB/ANw7LAe4HtgxbLIduHkSA0oav1HfgefrwFeAXxuWPwC8WVVHhuWDwPoxzzZ3xvUXX8f1bixn\ny1+gndfjOs5/c94secZP8ingtap64nR2kGRrkj1J9rzLO6fzT0gas1TVyTdI/gb4HHAEOBe4APgn\n4AbgN6vqSJJrgb+sqhtO9m9dkDV1dTaPZXBJ77W7dvFW/SxLbbfkGb+q7qyqDVV1KXAr8MOq+izw\nGHDLsNkW4KFlzCtpipbz//H/DPjTJAdYeM5/33hGkjRpp/T22lX1I+BHw9fPAx8b/0iSJs0796SG\nDF9qyPClhgxfasjwpYYMX2rI8KWGDF9qyPClhgxfasjwpYYMX2rI8KWGDF9qyPClhgxfasjwpYYM\nX2rI8KWGDF9qyPClhgxfasjwpYYMX2rI8KWGDF9qyPClhgxfasjwpYYMX2rI8HVcOw/tZeehvbMe\nQxNi+FJDK2c9gObTDRdfOesRNEGe8aWGDF9qyPClhgxfamik8JNcmGRHkmeS7E9ybZI1SR5N8tzw\n+aJJDytpPEY9498DfL+qPgR8BNgP3AHsqqrLgV3DsqQzwJLhJ3k/8LvAfQBV9YuqehO4Cdg+bLYd\nuHlSQ0oar1HO+BuB14FvJnkyyb1JzgfWVtXhYZtXgLXH++YkW5PsSbLnXd4Zz9SSlmWU8FcCHwW+\nUVVXAW9zzGV9VRVQx/vmqtpWVZuqatM5rF7uvJLGYJTwDwIHq2r3sLyDhV8EryZZBzB8fm0yI0oa\ntyXDr6pXgJeSfHBYtRnYBzwMbBnWbQEemsiEksZu1Hv1/wS4P8kq4Hngj1j4pfGdJLcBPwU+PZkR\nJY3bSOFX1V5g03Ee2jzecSRNg3fuSQ0ZvtSQ4UsNGb7UkOFLDRm+1JDhSw0ZvtSQ4UsNGb7UkOFL\nDRm+1JDhSw0ZvtSQ4UsNGb7UkOFLDRm+1JDh66R2HtrLzkN7Zz2GxszwpYZGfZddNXXDxVfOegRN\ngGd8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKmhkcJP\n8qUkTyd5Ksm3kpybZGOS3UkOJPl2klWTHlbSeCwZfpL1wBeATVX1YWAFcCtwF3B3VV0GvAHcNslB\nJY3PqJf6K4FfTbISOA84DFwP7Bge3w7cPP7xJE3CkuFX1cvAV4EXWQj+58ATwJtVdWTY7CCwflJD\nSifjG4KeulEu9S8CbgI2AhcD5wM3jrqDJFuT7Emy513eOe1BJY3PKG+2+XHghap6HSDJg8B1wIVJ\nVg5n/Q3Ay8f75qraBmwDuCBraixTnyWOnqV8Q8vl8fidulGe478IXJPkvCQBNgP7gMeAW4ZttgAP\nTWZESeO25Bm/qnYn2QH8GDgCPMnCGfxfgAeS/PWw7r5JDno28kylWUnV9K6+L8iaujqbp7Y/qZvd\ntYu36mdZajvv3JMaMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypIcOXGjJ8qSHDlxoyfKkhw5caMnyp\nIcOXGjJ8qSHDlxoyfKkhw5caMnydlH+s4uxk+FJDo/xBDTXmW4CfnTzjSw0ZvtSQ4UsNGb7UkOFL\nDRm+1JDhSw0ZvtTQVP9MdpLXgbeB/57aTsfj1znzZoYzc25nXp7fqqrfWGqjqYYPkGRPVW2a6k6X\n6UycGc7MuZ15OrzUlxoyfKmhWYS/bQb7XK4zcWY4M+d25imY+nN8SbPnpb7U0NTCT3JjkmeTHEhy\nx7T2e6qSXJLksST7kjyd5PZh/ZokjyZ5bvh80axnPVaSFUmeTPLIsLwxye7hmH87yapZz7hYkguT\n7EjyTJL9Sa49Q47zl4afjaeSfCvJufN+rI81lfCTrAD+Dvh94ArgM0mumMa+T8MR4MtVdQVwDfD5\nYdY7gF1VdTmwa1ieN7cD+xct3wXcXVWXAW8At81kqhO7B/h+VX0I+AgLs8/1cU6yHvgCsKmqPgys\nAG5l/o/1L6uqiX8A1wI7Fy3fCdw5jX2PYfaHgE8AzwLrhnXrgGdnPdsxc25gIZTrgUeAsHBTycrj\n/TeY9QfwfuAFhteZFq2f9+O8HngJWMPCO1g9Atwwz8f6eB/TutQ/erCOOjism2tJLgWuAnYDa6vq\n8PDQK8DaGY11Il8HvgL837D8AeDNqjoyLM/bMd8IvA58c3h6cm+S85nz41xVLwNfBV4EDgM/B55g\nvo/1e/ji3gkkeR/wXeCLVfXW4sdq4df63PzvkCSfAl6rqidmPcspWAl8FPhGVV3Fwq3cv3RZP2/H\nGWB4zeEmFn5xXQycD9w406FOw7TCfxm4ZNHyhmHdXEpyDgvR319VDw6rX02ybnh8HfDarOY7juuA\nP0zyX8ADLFzu3wNcmOToG6rO2zE/CBysqt3D8g4WfhHM83EG+DjwQlW9XlXvAg+ycPzn+Vi/x7TC\nfxy4fHjlcxULL4Y8PKV9n5IkAe4D9lfV1xY99DCwZfh6CwvP/edCVd1ZVRuq6lIWju0Pq+qzwGPA\nLcNm8zbzK8BLST44rNoM7GOOj/PgReCaJOcNPytH557bY31cU3xR5JPAT4D/BP5i1i9unGTO32Hh\n8vLfgb3DxydZeM68C3gO+AGwZtaznmD+3wMeGb7+beDfgAPAPwKrZz3fMbNeCewZjvU/AxedCccZ\n+CvgGeAp4B+A1fN+rI/98M49qSFf3JMaMnypIcOXGjJ8qSHDlxoyfKkhw5caMnypof8HGsDpKeaK\nUFcAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f20be84fe80>"
       ]
      }
     ],
     "prompt_number": 98
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "img.dtype"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 100,
       "text": [
        "torch.float32"
       ]
      }
     ],
     "prompt_number": 100
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.imshow(img)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 87,
       "text": [
        "<matplotlib.image.AxesImage at 0x7f20b98ae860>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nnBvPSHRYAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f20be8aa8d0>"
       ]
      }
     ],
     "prompt_number": 87
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}